import request from "../../utils/request";
Page({
  /**
   * 页面的初始数据
   */
  data: {
    navList:[],
    navId:'',//当前tab栏选中的导航id
    videoList:[],
    vid:'',//当前播放视频的id
    updateTime:[],//存放视频进度的变化
    trigger:false//控制下拉更新

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: async function (options) {
    //判断用户是否处于登录状态
    let userInfo = wx.getStorageSync('userInfo')
    if(!userInfo){
      wx.redirectTo({
        url: '/pages/login/login',
      });
      return
    }
    // 获取nav数据
    const navListData = await request('/video/group/list')
    this.setData({
      navList:navListData.data.slice(0,15),
      navId:navListData.data[0].id,
    })
    this.getVideoList(this.data.navId)
  },
  //  获取nav对应视频列表
  async getVideoList(id){
    let index = 0
    wx.showLoading({
      title: '加载中...',
      mask: true,
    })
    const videoListData = await request('/video/group',{id})
    wx.hideLoading()
    const videoList = videoListData.datas.map(item=>{
      item.id = index++
      return item
    })
    this.setData({
      videoList,
      trigger:false
    })
  },
  async changeNav(e){
    this.setData({
      navId:e.target.id.slice(6) >>> 0 //隐式转换为number
    })
    this.getVideoList(this.data.navId)
  },
  //控制视频播放
  videoPlay(e){
    // //如果有id,并且有videoContext实例 说明已经点过了
    // if(e.target.id && this.videoContext){
    //   this.videoContext.pause()
    // }
    this.setData({
      vid: e.target.id
    })
    this.videoContext =  wx.createVideoContext(this.data.vid)
    const currentVideo = this.data.updateTime.find(item=>item.id === e.target.id)
    console.log(currentVideo);
    if(currentVideo){
      this.videoContext.seek(currentVideo.currentTime)
      
    }
    this.videoContext.play()
  },
  
  //视频播放进度,播放进度变化时触发
  timeUpdate(e){
    const {vid,updateTime} = this.data
    let updateTimeItem = {
      id:vid,
      currentTime:e.detail.currentTime,
      duration:e.detail.duration
    }
    const obj = updateTime.find(item=>item.id === vid)
    if(obj){
      //如果存在 则修改currentTime
      obj.currentTime = e.detail.currentTime
      //视频放完,则删除该对象
      if(obj.currentTime === obj.duration){
        updateTime.splice(updateTime.findIndex(item=>item.id === obj.id),1)
      }
    }else{
      updateTime.push(updateTimeItem)
    }
    this.setData({
      updateTime
    })
  },
  // 下拉更新
  refresh(){
    //请求最新数据
      this.getVideoList(this.data.navId)
  },
  toSearch(){
    wx.navigateTo({
      url: '/pages/search/search',
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function (res) {
    if (res.from === 'menu') {
			return {
				title: '我是右上角的转发',
				path: '/pages/video/video',
				imageUrl: '/static/images/nvsheng.jpg',
			};
		} else {
			return {
				title: '我是按钮的转发',
				path: '/pages/video/video',
				imageUrl: '/static/images/nvsheng.jpg',
			};
		}
  }
})